Enterprise Integration Patterns
   HOME

TheInfoList



OR:

''Enterprise Integration Patterns'' is a book by Gregor Hohpe and Bobby Woolf and describes 65
pattern A pattern is a regularity in the world, in human-made design, or in abstract ideas. As such, the elements of a pattern repeat in a predictable manner. A geometric pattern is a kind of pattern formed of geometric shapes and typically repeated l ...
s for the use of
enterprise application integration Enterprise application integration (EAI) is the use of software and computer systems' architectural principles to integrate a set of enterprise computer applications. Overview Enterprise application integration is an integration framework comp ...
and
message-oriented middleware Message-oriented middleware (MOM) is software or hardware infrastructure supporting sending and receiving messages between distributed systems. MOM allows application modules to be distributed over heterogeneous platforms and reduces the complex ...
in the form of a
pattern language A pattern language is an organized and coherent set of ''patterns'', each of which describes a problem and the core of a solution that can be used in many ways within a specific field of expertise. The term was coined by architect Christopher Alexa ...
.


The integration (messaging) pattern language

The pattern language presented in the book consists of 65 patterns structured into 9 categories, which largely follow the flow of a message from one system to the next through channels, routing, and transformations. The book includes an icon-based pattern language, sometimes nicknamed "GregorGrams" after one of the authors. Excerpts from the book (short pattern descriptions) are available on the supporting website (see
External links An internal link is a type of hyperlink on a web page to another page or resource, such as an image or document, on the same website or domain. Hyperlinks are considered either "external" or "internal" depending on their target or destination ...
).


Integration styles and types

The book distinguishes four top-level alternatives for integration: # File Transfer # Shared Database # Remote Procedure Invocation # Messaging The following integration types are introduced: * Information Portal * Data Replication * Shared Business Function *
Service Oriented Architecture In software engineering, service-oriented architecture (SOA) is an architectural style that focuses on discrete services instead of a monolithic design. By consequence, it is also applied in the field of software design where services are provided ...
* Distributed Business Process * Business-to-Business Integration * Tightly Coupled Interaction vs. Loosely Coupled Interaction


Messaging

* Message Channel * Message * Pipes and Filters * Message Router * Message Translator * Message Endpoint


Message Channel

* Point-to-Point Channel * Publish-Subscribe Channel * Datatype Channel * Invalid Message Channel * Dead Letter Channel * Guaranteed Delivery * Channel Adapter * Messaging Bridge * Message Bus


Message Construction

* Command Message * Document Message * Event Message * Request-Reply * Return Address * Correlation Identifier * Message Sequence * Message Expiration * Format Indicator


Message Router

* Content-Based Router * Message Filter * Dynamic Router * Recipient List * Splitter * Aggregator * Resequencer * Composed Message Processor * Scatter-Gather * Routing Slip * Process Manager * Message Broker


Message Transformation

* Envelope Wrapper * Content Enricher * Content Filter * Claim Check * Normalizer * Canonical Data Model


Message Endpoint

* Messaging Gateway * Messaging Mapper * Transactional Client * Polling Consumer * Event-Driven Consumer * Competing Consumers * Message Dispatcher * Selective Consumer * Durable Subscriber * Idempotent Receiver * Service Activator


System Management

* Control Bus * Detour * Wire Tap * Message History * Message Store * Smart Proxy * Test Message * Channel Purger The pattern language continues to be relevant as of today, for instance in cloud application development and integration, and in the internet of things. In 2015, the two book authors reunited—for the first time since the publication of the book—for a retrospective an
interview
in ''
IEEE Software ''IEEE Software'' is a bimonthly peer-reviewed magazine and scientific journal published by the IEEE Computer Society covering all aspects of software engineering, processes, and practices. Its mission is to be the best source of reliable, useful ...
''.


Implementation

Enterprise Integration Patterns are implemented in many open source integration solutions. Notable implementations include Spring Integration,
Apache Camel Apache Camel is an open source framework for message-oriented middleware with a rule-based routing and mediation engine that provides a Java object-based implementation of the Enterprise Integration Patterns using an application programming inte ...
, Red Hat Fuse,
Mule ESB Mule is a lightweight enterprise service bus (ESB) and integration framework provided by MuleSoft. The platform is Java-based but, can broker interactions between other platforms such as .NET using web services or sockets. The architecture i ...
and
Guaraná DSL Guaraná DSL is a domain-specific language (DSL) to design enterprise application integration (EAI) solutions at a high level of abstraction. The resulting models are platform-independent, so engineers do not need to have skills on a low-level inte ...
.


See also

*
Enterprise messaging system An enterprise messaging system (EMS) or messaging system in brief is a set of published enterprise-wide standards that allows organizations to send semantically precise messages between computer systems. EMS systems promote loosely coupled arch ...
*
Loose coupling In computing and systems design, a loosely coupled system is one # in which components are weakly associated (have breakable relationships) with each other, and thus changes in one component least affect existence or performance of another comp ...
*
Software design pattern In software engineering, a software design pattern is a general, reusable solution to a commonly occurring problem within a given context in software design. It is not a finished design that can be transformed directly into source or machine code ...


References


External links

* * * American non-fiction books 2003 non-fiction books Software engineering books Software design patterns Enterprise application integration Message-oriented middleware Monographs {{compu-book-stub